package com.cmpe451.nutty.service;

import java.util.List;

import org.springframework.security.core.userdetails.UserDetailsService;

import com.cmpe451.nutty.model.AppUrl;
import com.cmpe451.nutty.model.ExampleModel;
import com.cmpe451.nutty.model.Follow;
import com.cmpe451.nutty.model.Levels;
import com.cmpe451.nutty.model.Report;
import com.cmpe451.nutty.model.Role;
import com.cmpe451.nutty.model.User;
import com.cmpe451.nutty.so.GuiUser;

public interface UserService extends UserDetailsService, CommonService {
    public List<AppUrl> getAllSecureUrls();

    public GuiUser getGuestUser();

    public List<GuiUser> getUsers(int page, int max, String orderBy, String orderType);

    public GuiUser getGuiUserById(long id);
    
    public User getUserByEmail(String email);

    public User getUserById(long id);

    public void updateUser(User user);

	public Role getRoleByName(String string);

	public void saveFollow(Follow follow);

	public List<User> findSearchResultsofUsers(String q);

	public User getUserByName(String username);

	public void saveReport(Report report);

	public Report checkReport(String username, String username2);

	public int checkReportCount(String username);

	public List<Report> getReportedOnes(String username2);

	public Levels getTitle(Long levelPoint);

	public void sendRecoveryMail(String username, String email);

}
